package Lambda表达式.省略模式;
/**
 *1.5 Lambda表达式的省略模式
 * 省略规则:
 * ●参数类型可以省略。 但是有多个参数的情况下，不能只省略一个
 * ●如果参数有且仅有一 个，那么小括号可以省略
 * ●如果代码块的语句只有一 条,可以省略大括号和分号，甚至是return
 * */
public class LambdaDemo {
    public static void main(String[] args) {
        /*useAddable((int x,int y)->{
            return x+y;
        });*/

        //参数的类型可以省略//但是在多个参数的时候，不能够只省略一个
        useAddable((x,y)->{
            return x+y;
        });


        /*useFlyable((String s)->{
            System.out.println(s);
        });*/
        useFlyable((s)->{
            System.out.println(s);
        });

        //如果参数有且只有一个，那么小括号也可以省略
        /*useFlyable(s->{
            System.out.println(s);
        });*/

        //如果代码块的语句只有一条，可以省略大括号和分号
        //useFlyable(s-> System.out.println(s));

        /*useAddable((x,y)->return x+y);
        * 如果有return，则return也是需要省略掉的
        * useAddable((x,y)-> x+y);
        * */

    }
    private static void useFlyable(Flyable f){
        f.fiy("你好，我就是你要找的人");
    }
    private static void useAddable(Addable a){
        int sum=a.add(10,20);
        System.out.println(sum);
    }
}
